# -*- coding: utf-8 -*-

#This file is part of pyLot library.
#
# pyLot is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyLot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pyLot.  If not, see <http://www.gnu.org/licenses/>.

__author__ = u'Pierre Puiseux, Guillaume Baty'
__copyright__ = u"Copyright 2011-2012 (C) andheo, Université de Pau et des Pays de l'Adour"
__credits__ = [u'Pierre Puiseux', u'Guillaume Baty']
__license__ = "GNU Lesser General Public License"

__all__ = []

from traits.api import Unicode
from pyLot.core import Path

class TraitUnicode(Unicode):
  """ 
  Defines a trait whose value must be an non empty unicode
  """
  def validate (self, obj, name, value):
    if isinstance(value, unicode) and value.strip():
      return value
    self.error(obj, name, value)

class TraitPath (TraitUnicode):
  """ 
  Defines a trait whose value must be a Path
  """
  def validate (self, obj, name, value):
    value = TraitUnicode.validate(self, obj, name, value)
    return Path(value)

class TraitAsciiUnicode(TraitUnicode):pass
class TraitVarNameUnicode(TraitUnicode):pass

class TraitFilePath(TraitPath):pass
class TraitDirPath(TraitPath):pass
class TraitExistingFilePath(TraitPath):pass
class TraitExistingDirPath(TraitPath):pass

if __name__ == '__main__' :
  import doctest
  doctest.testmod()


